// 递归深拷贝（自定义实现）

function deepClone(obj) {
  if (obj === null || typeof obj !== "object") return obj;
  if (obj instanceof Date) return new Date(obj);
  if (obj instanceof Array) return obj.map((item) => deepClone(item));
  if (obj instanceof Object) {
    const clonedObj = {};
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        clonedObj[key] = deepClone(obj[key]);
      }
    }
    return clonedObj;
  }
}

/**
 * 
A区X  1650到2650
A区Y   -400到  -2000

B区X  1650到2650
B区Y   400到 2000

Z值 -300到2100
 */
// 传过来lineName[区域],x,y,z 根据区域满足条件，在这个条件中，才能返回true，否则返回false
function checkPointInArea(lineName, x, y, z) {
  switch (lineName) {
    case "A":
      return (
        x >= 1650 &&
        x <= 2650 &&
        y <= -400 &&
        y >= -2000 &&
        z >= -300 &&
        z <= 2100
      );
    case "B":
      return (
        x >= 1650 &&
        x <= 2650 &&
        y >= 400 &&
        y <= 2000 &&
        z >= -310 &&
        z <= 2100
      );
    default:
      return false;
  }
}

module.exports = {
  deepClone,
  checkPointInArea,
};
